negotiator.boaframework
Class OMStrategy

java.lang.Object
  extended by negotiator.boaframework.OMStrategy
Direct Known Subclasses:
BestBid, NTFTstrategy, NullStrategy, OfferBestN

public abstract class OMStrategy
extends java.lang.Object

This is the abstract class which determines when the opponent model may be updated, and how it used to select a bid for the opponent. Tim Baarslag, Koen Hindriks, Mark Hendrikx, Alex Dirkzwager and Catholijn M. Jonker. Decoupling Negotiating Agents to Explore the Space of Negotiation Strategies

Author:
Mark Hendrikx

Field Summary
protected  OpponentModel model
          Reference to the opponent model
protected  NegotiationSession negotiationSession
          Reference to the object which holds all information about the negotiation
 
Constructor Summary
OMStrategy()
           
 
Method Summary
abstract  boolean canUpdateOM()
           
abstract  BidDetails getBid(java.util.List<BidDetails> bidsInRange)
          Returns a bid selected using the opponent model from the given set of similarly preferred bids.
 BidDetails getBid(OutcomeSpace space, Range range)
          Returns a bid selected using the opponent model with a utility in the given range.
 BidDetails getBid(SortedOutcomeSpace space, double targetUtility)
          Use this method in case no range is specified, but only a target utility.
 void init(NegotiationSession negotiationSession, OpponentModel model)
          Initialize method which my be used when the opponent model strategy has no parameters, or when the default values for these parameters should be used.
 void init(NegotiationSession negotiationSession, OpponentModel model, java.util.HashMap<java.lang.String,java.lang.Double> parameters)
          Initialize method to be used by the BOA framework.
 void setOpponentModel(OpponentModel model)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

negotiationSession

protected NegotiationSession negotiationSession
Reference to the object which holds all information about the negotiation


model

protected OpponentModel model
Reference to the opponent model

Constructor Detail

OMStrategy

public OMStrategy()
Method Detail

init

public void init(NegotiationSession negotiationSession,
                 OpponentModel model,
                 java.util.HashMap<java.lang.String,java.lang.Double> parameters)
          throws java.lang.Exception
Initialize method to be used by the BOA framework.

Parameters:
negotiationSession - state of the negotiation.
model - opponent model to which the opponent model strategy applies.
parameters - for the opponent model strategy, for example the maximum update time.
Throws:
java.lang.Exception - thrown when initializing the opponent model strategy fails.

init

public void init(NegotiationSession negotiationSession,
                 OpponentModel model)
          throws java.lang.Exception
Initialize method which my be used when the opponent model strategy has no parameters, or when the default values for these parameters should be used.

Parameters:
negotiationSession - state of the negotiation.
model - opponent model to which the opponent model strategy applies.4
Throws:
java.lang.Exception - when initializing the agent fails.

getBid

public abstract BidDetails getBid(java.util.List<BidDetails> bidsInRange)
Returns a bid selected using the opponent model from the given set of similarly preferred bids.

Parameters:
bidsInRange - set of similarly preferred bids
Returns:
bid

getBid

public BidDetails getBid(OutcomeSpace space,
                         Range range)
Returns a bid selected using the opponent model with a utility in the given range.

Parameters:
space - of all possible outcomes
range - of utility
Returns:
bid

setOpponentModel

public void setOpponentModel(OpponentModel model)

getBid

public BidDetails getBid(SortedOutcomeSpace space,
                         double targetUtility)
Use this method in case no range is specified, but only a target utility. This method has two steps: First a set of bids is generated using the following procedure. The method looks at the bids in the range [targetUtility, targetUtility + INITIAL_WINDOW_RANGE]. If there are less than EXPECTED_BIDS_IN_WINDOW in the window, then the upperbound is increased by RANGE_INCREMENT. Second a bid for the opponent is selected by calling getBid(List bidsInRange) with the generated set.

Parameters:
space - of all possible outcomes
targetUtility - minimum utility to
Returns:
bid selected by using the opponent model strategy.

canUpdateOM

public abstract boolean canUpdateOM()
Returns:
if given the negotiation state the opponent model may be updated